package cn.wolfcode.edu.service;

import cn.wolfcode.edu.domain.Client;
import cn.wolfcode.edu.query.ClientQueryObject;
import cn.wolfcode.edu.query.QueryObject;
import cn.wolfcode.edu.util.PageResult;

import java.util.List;

public interface IClientService {

    /**
     * 客户的高级查询
     * @param qo 查询对象
     * @return
     */
    PageResult query(ClientQueryObject qo);

    /**
     * 新增客户
     * @param client
     */
    void save(Client client);

    /**
     * 更新用户信息
     * @param client
     */
    void edit(Client client);

    /**
     * 根据客户Id查询客户信息
     * @param clientId
     * @return
     */
    Client getClientById(Long clientId);

    /**
     * 将潜在客户放入资源池 将营销人员设置为null
     * @param id
     */
    void abandon(Long id);

    /**
     * 移交潜在客户
     */
    void joinMe(Long clientId);

    /**
     * 列出资源池的数据
     * @param qo
     * @return
     */
    PageResult listNoSaleman(ClientQueryObject qo);

    /**
     * 指派潜在客户给指定的营销人员
     * @param salemanId
     */
    void dispatch(Long salemanId,Long clientId);

    /**
     * 表格导出
     * @param qo
     * @return
     */
    List queryForList(ClientQueryObject qo);
}
